#pragma once

class ToolWork
{
protected:
	float m_x;
	float m_y;
	ToolWork* m_Prev;
public:
	inline void SetPrev(ToolWork* pPrev)		{ m_Prev = pPrev;	}
	inline ToolWork* GetPrev()					{ return m_Prev;	}

	virtual void Do(float x,float y) = 0;
	virtual void Undo(float x, float y) = 0;
public:
	ToolWork(void);
	virtual ~ToolWork(void);
};


class MoveWork : ToolWork
{
public:
	void Do(float x,float y);
	void Undo(float x, float y);
public:
	MoveWork(void);
	virtual ~MoveWork(void);
};

class ScaleWork : ToolWork
{
public:
	void Do(float x,float y);
	void Undo(float x, float y);
public:
	ScaleWork(void);
	virtual ~ScaleWork(void);
};

